package com.qfedu.edu.controller;

import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author xiaobobo
 * @title: UserController
 * @projectName CD-Java-FY-2401-Springboot-Parent
 * @description: TODO
 * @date 2024/9/12  10:52
 */
@RestController
public class UserController {

    /**
     * 登录成功跳转的位置是哪里
     *
     * @return
     */
    @PostMapping("test")
    public Object test() {
        return "登陆成功....";
    }

    /**
     * 判断用户是否具有访问某一个方法的权利
     * 这个就称为鉴权
     * @return
     */
    @GetMapping("test1")
    public Object test1(){
        return "test1这个资源被访问了....";
    }


    /**
     * 注解授权
     *  .hasAnyAuthority()  具有任何一个权限都能访问
     *  .hasAnyRole() //具有任何一个角色都能访问
     *  .hasAuthority("user_query"); //表示具有某一个权限才能访问
     *  .hasRole("admin");  //表示具有某一个角色才能访问
     * @return
     */
    //@Secured(value = {"ROLE_admin"})  //表示的是需要某一个角色才能访问
    @PreAuthorize("hasRole('admin')")  //这个注解既可以表示权限也可以表示角色
    @GetMapping("test2")
    public Object test2(){
        return "test2这个资源被访问了....";
    }

}
